package simulacao;

// Diretório base da simulação. Usado para encontrar os aqruivos de imagem dos veiculos.
public-read def DIRETORIO = __DIR__;

// Taxa de atualização da tela - Valor default, não alterar.
public-read def REFRESH_RATE = 100ms;

// Largura da tela da simulação
public-read def SCREEN_WIDTH = 1000;

// Altura da tela da simulação
public-read def SCREEN_HEIGHT = 800;

// Define a velocidade maxima que os veiculos devem atingir na simulação
public-read def VELOCIDADE_MAXIMA_CARRO = 80;

// Define a velocidade maxima que os veiculos devem atingir na simulação
public-read def VELOCIDADE_MAXIMA_CAMINHAO = 60;

// Diferenca minima de velocidade para que seja implementado ajuste de velocidade em etapas
public-read def DIFERENCA_MINIMA_VELOCIDADE_AJUSTE_IMEDIATO = 5;

// Valor maximo de Delta para permitir uma redução de velocidade progressiva
public-read def DELTA_MINIMO_PARA_PERMITIR_AJUSTE_PROGRESSIVO = -25;

// Tempo (loops) necessario para ajustar a velociade em caso de DESACELERACAO
public-read def QUANTIDADE_LOOPS_DESACELERACAO = 3;

// Tempo (loops) necessario para ajustar a velociade em caso de ACELERACAO
public-read def QUANTIDADE_LOOPS_ACELERACAO = 10;

// Variavel boleana que define se os bounding boxes de colisão frontal são exibidos ou não durante a simulação
public var EXIBIR_BOUNDING_BOX_DETECTAR_COLISAO_FRONTAL = true;

// Variavel boleana que define se os bounding boxes de colisão lateral são exibidos ou não durante a simulação
public var EXIBIR_BOUNDING_BOX_DETECTAR_COLISAO_LATERAL = true;

// Variavel boleana que define se os boundboxes dos veiculos são exibidos ou não durante a simulação
public var EXIBIR_BOUNDING_BOX_VEICULO = true;

// Quantidade de NAO colisoes seguidas minima para determinar de fato que um veiculo nao esta colidindo com outro
public-read def QUANTIDADE_MINIMA_NAO_COLISOES_SEGUIDAS = 8;

// Quantidade de colisoes seguidas para reduzir a velocidade do carro em uma porcentagem a mais, por estar "muito tempo" colidindo
public-read def QUANTIDADE_COLISOES_SEGUIDAS_PARA_REDUZIR_VELOCIDADE = 30;

// Porcentagem de reducao da velocidade quando atingir a quantidade de colisoes seguidas minima
public-read def PORCENTAGEM_REDUCAO_VELOCIDADE = 0.9;

// Quantidade de minima de tentativas de troca de faixa para aumentar o índice de agressividade do veiculo
public-read def QUANTIDADE_DE_TENTATIVAS_TROCA_DE_FAIXA_PARA_INCREMENTAR_INDICE_AGRESSIVIDADE = 30;

// Indice de agressividade máximo
public-read def INDICE_AGRESSIVIDADE_MAXIMO = 10;

// Imagens disponíveis para os carros
public-read def imagensCarro = [
        "veiculos/carro1",
        "veiculos/carro2",
        "veiculos/carro3",
        "veiculos/carro4",
        "veiculos/carro5",
        "veiculos/carro6",
        "veiculos/carro7"
        ];

// Imagens disponíveis para os caminhões
public-read def imagensCaminhao= [
        "veiculos/caminhao1",
        "veiculos/caminhao2",
        "veiculos/caminhao3",
        "veiculos/caminhao4"
        ];

